/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dao;

import com.interfaces.IComentario;
import com.modelo.Calendario;
import com.modelo.Comentario;
import com.modelo.Inmueble;
import com.modelo.Usuario;
import java.util.List;
import org.hibernate.Query;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

/**
 *
 * @author Seysame
 */
public class ComentarioDAO extends HibernateDaoSupport implements IComentario {

    @Override
    public List<Comentario> listarComentarios() {
          return this.getHibernateTemplate().find("from Comentario");
    }

    @Override
    public Comentario buscarComentario(Comentario comentario) {
     Query query = this.getSession().createQuery("from Comentario where id_comentario = :id ");
     query.setParameter("id",comentario.getIdComentario());
     List<Comentario>listado = query.list();
     if(listado.isEmpty()){
     return null;
     }else{
     return listado.get(0);
     }
    }

    @Override
    public Comentario registrarComentario(Comentario comentario) {
      this.getHibernateTemplate().saveOrUpdate(comentario);
       return comentario;
    }

    @Override
    public Comentario modificarComentario(Comentario comentario) {
    this.getHibernateTemplate().saveOrUpdate(comentario);
       return comentario;
    }

    @Override
    public List<Comentario> listarComentariosPorInmueble(Inmueble inmueble) {

      Query query = this.getSession().createQuery("from Comentario where id_inmueble = :id ");
     query.setParameter("id",inmueble.getIdInmueble());
     List<Comentario>listado = query.list();
     return listado;
    
    }
    
    @Override
    public List<Comentario> listarComentariosPorUsuario(Usuario usuario) {

     Query query = this.getSession().createQuery("from Comentario where id_usuario = :id ");
     query.setParameter("id",usuario.getIdUsuario());
     List<Comentario>listado = query.list();
     return listado;
    
    }
    
}
